package com.example.grid.webserviceclient;

import org.ksoap2.serialization.PropertyInfo;

import java.util.ArrayList;
import java.util.List;

/**
 * @author LiuYi
 *         创建时间： 2017/10/9.
 *         功能描述:
 */

public class PropertyListFactory {
    /**
     * 方法功能：根据嗲用的方法名称和xml参数生成传递给webService的List<PropertyInfo>
     * @param methodName 方法名称
     * @param xml  传递的xml参数 （或者json参数）
     * @return
     */
    public static List<PropertyInfo> getPropertyList(String methodName, String xml) {
        List<PropertyInfo> list = new ArrayList<>();

        switch (methodName) {
            case "GetBasInfo":
                PropertyInfo propertyTag = new PropertyInfo();
                propertyTag.setName("tag");
                propertyTag.setValue(Integer.valueOf(2));
                list.add(propertyTag);

                PropertyInfo propertyProductId = new PropertyInfo();
                propertyProductId.setName("ProductId");
                propertyProductId.setValue(xml);
                list.add(propertyProductId);
                break;

            case "NeonatalScreening":
                PropertyInfo propertyJson = new PropertyInfo();
                propertyJson.setName("ProductId");
                propertyJson.setValue(xml);
                list.add(propertyJson);

                PropertyInfo propertyInfo = new PropertyInfo();
                propertyInfo.setName("k");
                propertyInfo.setValue(Integer.valueOf(0));
                list.add(propertyInfo);
                break;

            case "PopulationIndex":case "GetPrescInfo":case "GetInpBilledDetailInfo":
            case "GetAllowance":case "GetOutAppointment":case "GetInfectionCard":case "GetExamInfo":
                PropertyInfo propertyInfo1 = new PropertyInfo();
                propertyInfo1.setName("ProductId");
                propertyInfo1.setValue(xml);
                list.add(propertyInfo1);
                break;

            //国家跨省新农合接口
            case "downloadZZRecords":case "uploadInpRegister":case "cancelInpRegister":
            case "uploadInpDetails":case "clearInpDetails":case "preInpPay":case "inpPay":
            case "backPay":
                PropertyInfo info = new PropertyInfo();
                info.setName("ProductId");
                info.setValue(xml);
                list.add(info);

            default:
                break;
        }
        return list;
    }
}
